package com.lancoo.ccas53.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lancoo.ccas53.entity.College;
import com.lancoo.ccas53.pojo.common.PageInfo;
import com.lancoo.ccas53.pojo.response.basicPlatform.BaseCollege;
import com.lancoo.ccas53.pojo.vo.CollegeRoomInput;
import com.lancoo.ccas53.pojo.vo.CollegeRoomVo;

import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.util.List;

/**
 * <p>
 * 院系及提交时间 服务类
 * </p>
 *
 * @author quin.song
 * @since 2024-05-20
 */
public interface CollegeService extends IService<College> {


    /**
     * 同步院系
     *
     * @param taskId
     * @param baseCollege
     */
    void syncColleges(Integer taskId, List<BaseCollege> baseCollege);


    /**
     * 获取学院场地分配列表
     *
     * @param taskId
     * @param baseCollegeId
     * @param roomSet
     * @return
     */
    List<CollegeRoomVo> getCollegeRoom(Integer taskId, String baseCollegeId, Integer roomSet);

    /**
     * 设置学院场地分配
     *
     * @param collegeRoomInput
     * @return
     */
    Boolean setCollegeRoom(CollegeRoomInput collegeRoomInput);

    /**
     * 清空学院场地分配设置
     *
     * @param taskId
     * @return
     */
    Boolean clearCollegeRoom(Integer taskId);

    /**
     * @param taskId
     * @return
     */
    List<College> getCollage(Integer taskId);

    void exportSiteAllocationDerivation(HttpServletResponse response, Integer taskId, String baseCollegeId, Integer roomSet);


    PageInfo<College> getScheduleCommit(Page<College> page, Integer taskId, String baseCollegeId);

    void scheduleCommit(Integer taskId, String baseCollegeId, String userId, String userName, Integer lock, Integer arrangeRound) throws UnsupportedEncodingException;

}
